﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Inmobiliaria.Services.Core.DTO;
using Inmobiliaria.Presenters.ViewInterfaces;
using Inmobiliaria.Exceptions;
using Inmobiliaria.Presenters.WUCPresenters;
using System.Drawing;
using System.IO;

public partial class WebUserControls_InmuebleWUC : System.Web.UI.UserControl, IViewInmuebleWUC
{
    //private InmueblePresenter _presenter;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    #region IViewInmuebleWUC Members
    public void ShowInmueble(DtoListaInmueble inmueble)
    {
        if (inmueble != null)
        {
            nombreInmobiliaria(inmueble);
            telefonoVendedor(inmueble);
            telefonoAlternativo(inmueble);
            celularVendedor(inmueble);
            celularAlternativo(inmueble);
            calleVendedor(inmueble);
            alturaVendedor(inmueble);
            emailVendedor(inmueble);
            facebook(inmueble);
            sitioWeb(inmueble);
            idInmueble = Convert.ToString(inmueble.IdInmueble);
            provincias = inmueble.NombreProvincia;
            localidad = inmueble.NombreLocalidad;
            barrio = inmueble.NombreBarrio;
            calle = inmueble.Calle;
            altura = inmueble.Altura;
            lote = inmueble.Lote;
            superficiecubierta = inmueble.SuperficieCubierta;
            habitaciones = inmueble.Habitaciones;
            baños = inmueble.Baños;
            balcon = inmueble.Balcon;
            cocina = inmueble.Cocina;
            comedor = inmueble.Comedor;
            jardin = inmueble.Jardin;
            living = inmueble.Living;
            terraza = inmueble.Terraza;
            patio = inmueble.Patio;
            quincho = inmueble.Quincho;
            agua = inmueble.Agua;
            asfalto = inmueble.Asfalto;
            cloacas = inmueble.Cloacas;
            gas = inmueble.Gas;
            luz = inmueble.Luz;
            telefono = inmueble.TelefonoInmueble;
            MostrarImagenGrande(inmueble);
            MostrarImagen2(inmueble);
            MostrarImagen3(inmueble);
            MostrarImagen4(inmueble);
            MostrarImagen5(inmueble);
        }
    }
    private void sitioWeb(DtoListaInmueble inmueble)
    {
        if (inmueble.SitioWeb != "" & inmueble.SitioWeb != null)
        {
            lblSitioWeb.Text = inmueble.SitioWeb;
        }
    }
    private void facebook(DtoListaInmueble inmueble)
    {
        if (inmueble.Facebook != "" & inmueble.Facebook != null)
        {
            lblFacebook.Text = inmueble.Facebook;
        }
    }
    private void alturaVendedor(DtoListaInmueble inmueble)
    {
        if (inmueble.AlturaInmobiliaria != "" & inmueble.AlturaInmobiliaria != null)
        {
            lblAltuVendedor.Text = inmueble.AlturaInmobiliaria;
        }
    }
    private void calleVendedor(DtoListaInmueble inmueble)
    {
        if (inmueble.CalleInmobiliaria != "" & inmueble.CalleInmobiliaria != null)
        {
            lblCalleVende.Text = inmueble.CalleInmobiliaria;
        }
    }
    private void telefonoVendedor(DtoListaInmueble inmueble)
    {
        if (inmueble.Telefono != "" & inmueble.Telefono != null)
        {
            lblTelefVende.Text = inmueble.CodTelefono + inmueble.Telefono;
        }
        if (inmueble.TelefonoInmobiliaria != "" & inmueble.TelefonoInmobiliaria != null)
        {
            lblTelefVende.Text = inmueble.CodTelefonoInmobiliaria + inmueble.TelefonoInmobiliaria;
        }

    }
    private void telefonoAlternativo(DtoListaInmueble inmueble)
    {
        if (inmueble.Telefono2 != "" & inmueble.Telefono2 != null)
        {
            lblTeleAlternativo.Text = inmueble.CodTelefono2 + inmueble.Telefono2;
        }
    }
    private void emailVendedor(DtoListaInmueble inmueble)
    {
        if (inmueble.Email != "" & inmueble.Email != null)
        {
            lblEmailVende.Text = inmueble.Email;
        }
        if (inmueble.EmailInmobiliaria != "" & inmueble.EmailInmobiliaria != null)
        {
            lblEmailVende.Text = inmueble.EmailInmobiliaria;
        }
    }
    private void celularVendedor(DtoListaInmueble inmueble)
    {
        if (inmueble.Celular != "" & inmueble.Celular != null)
        {
            lblCeluVende.Text = inmueble.CodCelular + inmueble.Celular;
        }
        if (inmueble.CelularInmobiliaria != "" & inmueble.CelularInmobiliaria != null)
        {
            lblCeluVende.Text = inmueble.CodCelularInmobiliaria + inmueble.CelularInmobiliaria;
        }
    }
    private void celularAlternativo(DtoListaInmueble inmueble)
    {
        if (inmueble.Celular2 != "" & inmueble.Celular2 != null)
        {
            lblCeluAlternativo.Text = inmueble.CodCelular2 + inmueble.Celular2;
        }
    }
    private void MostrarImagenGrande(DtoListaInmueble inmueble)
    {
        if (inmueble.Foto1 != null)
        {
            ImageButton1.Visible = true;
            Bitmap foto1 = Funciones.byteToBipmap(inmueble.Foto1);
            string nombreFoto = Inmobiliaria.Base.ValoresConstantes.FotosTemp(inmueble.IdInmueble);
            foto1.Save((nombreFoto), System.Drawing.Imaging.ImageFormat.Jpeg);
            ImagenGrande.ImageUrl = System.Configuration.ConfigurationManager.AppSettings.Get("TemporalImagenesInmobiliaria").ToString() + inmueble.IdInmueble + ".jpg";
            ImageButton1.ImageUrl = System.Configuration.ConfigurationManager.AppSettings.Get("TemporalImagenesInmobiliaria").ToString() + inmueble.IdInmueble + ".jpg";
            ImagenGrande.Visible = true;
            LinkFotoGrande.HRef = nombreFoto;
        }
        else
        {
            ImagenGrande.ImageUrl = System.Configuration.ConfigurationManager.AppSettings.Get("SinFoto").ToString()+ "SinFoto" + ".jpg";
            ImagenGrande.Visible = true;
            //return string.Format(System.Configuration.ConfigurationManager.AppSettings.Get("ConsultarImagenesInmuebles").ToString() + inmueble + ".jpg");
            string SinFoto = string.Format(System.Configuration.ConfigurationManager.AppSettings.Get("SinFoto").ToString() + "SinFoto" + ".jpg");
            LinkFotoGrande.HRef = SinFoto;
        }
    }
    private void MostrarImagen2(DtoListaInmueble inmueble)
    {
        if (inmueble.Foto2 != null)
        {
            ImageButton2.Visible = true;
            Bitmap foto2 = Funciones.byteToBipmap2(inmueble.Foto2);
            string nombreFoto2 = Inmobiliaria.Base.ValoresConstantes.FotosTemp2(inmueble.IdInmueble);
            foto2.Save((nombreFoto2), System.Drawing.Imaging.ImageFormat.Jpeg);
            ImageButton2.ImageUrl = System.Configuration.ConfigurationManager.AppSettings.Get("TemporalImagenesInmobiliaria").ToString() + inmueble.IdInmueble + "Foto2" + ".jpg";
            //LinkFotoGrande.HRef = nombreFoto2;
        }
        else
        {
            ImageButton2.Visible = false;
        }
    }
    private void MostrarImagen3(DtoListaInmueble inmueble)
    {
        if (inmueble.Foto3 != null)
        {
            ImageButton3.Visible = true;
            Bitmap foto3 = Funciones.byteToBipmap(inmueble.Foto3);
            string nombreFoto3 = Inmobiliaria.Base.ValoresConstantes.FotosTemp3(inmueble.IdInmueble);
            foto3.Save((nombreFoto3), System.Drawing.Imaging.ImageFormat.Jpeg);
            ImageButton3.ImageUrl = System.Configuration.ConfigurationManager.AppSettings.Get("TemporalImagenesInmobiliaria").ToString() + inmueble.IdInmueble + "Foto3" + ".jpg";
            //LinkFotoGrande.HRef = nombreFoto2;
        }
        else
        {
            ImageButton3.Visible = false;
        }
    }
    private void MostrarImagen4(DtoListaInmueble inmueble)
    {
        if (inmueble.Foto4 != null)
        {
            ImageButton4.Visible = true;
            Bitmap foto4 = Funciones.byteToBipmap(inmueble.Foto4);
            string nombreFoto4 = Inmobiliaria.Base.ValoresConstantes.FotosTemp4(inmueble.IdInmueble);
            foto4.Save((nombreFoto4), System.Drawing.Imaging.ImageFormat.Jpeg);
            ImageButton4.ImageUrl = System.Configuration.ConfigurationManager.AppSettings.Get("TemporalImagenesInmobiliaria").ToString() + inmueble.IdInmueble + "Foto4" + ".jpg";
            //LinkFotoGrande.HRef = nombreFoto2;
        }
        else
        {
            ImageButton4.Visible = false;
        }
    }
    private void MostrarImagen5(DtoListaInmueble inmueble)
    {
        if (inmueble.Foto5 != null)
        {
            ImageButton5.Visible = true;
            Bitmap foto5 = Funciones.byteToBipmap(inmueble.Foto5);
            string nombreFoto5 = Inmobiliaria.Base.ValoresConstantes.FotosTemp5(inmueble.IdInmueble);
            foto5.Save((nombreFoto5), System.Drawing.Imaging.ImageFormat.Jpeg);
            ImageButton5.ImageUrl = System.Configuration.ConfigurationManager.AppSettings.Get("TemporalImagenesInmobiliaria").ToString() + inmueble.IdInmueble + "Foto5" + ".jpg";
            //LinkFotoGrande.HRef = nombreFoto2;
        }
        else
        {
            ImageButton5.Visible = false;
        }
    }
    private void nombreInmobiliaria(DtoListaInmueble inmueble)
    {
        if (inmueble.NombreInmobiliaria2 != "" & inmueble.NombreInmobiliaria2 != null)
        {
            lblNombreInmo.Text = inmueble.NombreInmobiliaria2;
            lblNombreInmo.Visible = true;
            lblNombInmo.Visible = true;
            lblAltuVende.Visible = true;
            lblAltuVendedor.Visible = true;
            lblCalleVendedor.Visible = true;
            lblCalleVende.Visible = true;
            lblFacebook.Visible = true;
            lblSitioWeb.Visible = true;
            lblFace.Visible = true;
            lblSitio.Visible = true;
        }
    }
    public string idInmueble
    {
        set
        {
            lblCodigoInmu.Text = value;
        }
    }
    public string provincias
    {
        set
        {
            lblProv.Text = value;
        }
    }
    public string localidad
    {
        set
        {
            lblLoca.Text = value;
        }
    }
    public string barrio
    {
        set
        {
            lblBar.Text = value;
        }
    }
    public string calle
    {
        set
        {
            lblCall.Text = value;
        }
    }
    public string altura
    {
        set
        {
            lblAltu.Text = value;
        }
    }
    public string lote
    {
        set
        {
            lblLot.Text = value;
        }
    }
    public string superficiecubierta
    {
        set
        {
            lblSuperCub.Text = value;
        }
    }
    public string habitaciones
    {
        set
        {
            lblHabi.Text = value;
        }
    }
    public string baños
    {
        set
        {
            lblBañ.Text = value;
        }
    }
    public string balcon
    {
        set
        {
            lblBalc.Text = value;
        }
    }
    public string cocina
    {
        set
        {
            lblCoci.Text = value;
        }
    }
    public string comedor
    {
        set
        {
            lblCome.Text = value;
        }
    }
    public string jardin
    {
        set
        {
            lblJard.Text = value;
        }
    }
    public string living
    {
        set
        {
            lblLivi.Text = value;
        }
    }
    public string terraza
    {
        set
        {
            lblTerra.Text = value;
        }
    }
    public string patio
    {
        set
        {
            lblPat.Text = value;
        }
    }
    public string quincho
    {
        set
        {
            lblQuinc.Text = value;
        }
    }
    public string agua
    {
        set
        {
            lblAgu.Text = value;
        }
    }
    public string asfalto
    {
        set
        {
            lblAsfal.Text = value;
        }
    }
    public string cloacas
    {
        set
        {
            lblCloac.Text = value;
        }
    }
    public string gas
    {
        set
        {
            lblGa.Text = value;
        }
    }
    public string luz
    {
        set
        {
            lblLu.Text = value;
        }
    }
    public string telefono
    {
        set
        {
            lblTelef.Text = value;
        }
    }
    public void IniciarPagina(DtoListaInmueble inmueble)
    {
        //_presenter.SetInmueble(inmueble);
    }
    public event EventHandler Volver;
    #endregion
    protected void btnVolver_Click(object sender, EventArgs e)
    {
        if (Volver != null)
        {
            Volver(null, null);
        }
    }
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        ImagenGrande.ImageUrl = ImageButton1.ImageUrl;
    }
    protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
    {
        ImagenGrande.ImageUrl = ImageButton2.ImageUrl;
    }
    protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
    {
        ImagenGrande.ImageUrl = ImageButton3.ImageUrl;
    }
    protected void ImageButton4_Click(object sender, ImageClickEventArgs e)
    {
        ImagenGrande.ImageUrl = ImageButton4.ImageUrl;
    }
    protected void ImageButton5_Click(object sender, ImageClickEventArgs e)
    {
        ImagenGrande.ImageUrl = ImageButton5.ImageUrl;
    }
    #region Mensajes
    public void Error(string message)
    {
        MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, message);
    }
    public void ShowMessage(string message)
    {
        MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, message);
    }
    public void ShowError(Exception ex)
    {
        if (ex is CustomException)
        {
            MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, ex.Message);
        }
        else if (ex is ApplicationException)
        {
            MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, ex.Message);
        }
        else
        {
            MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Error, ex.Message);
        }
    }
    public void ShowQuestion(string message)
    {
        //MostrarMensajeDialogoPregunta(Enumeraciones.TipoDeMensaje.Pregunta, message);
    }
    private void MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje tipoDeMensaje, string mensaje)
    {
        IMensajeDeDialogo mensajeDeDialogo = (IMensajeDeDialogo)this.Page.Master.FindControl("form1").FindControl("MensajeDeDialogo");
        System.Web.UI.Control mensajeR = this.Page.Master.FindControl("form1").FindControl("MensajeDeDialogo") as System.Web.UI.Control;
        if (mensajeR != null)
        {
            mensajeR.Visible = true;
        }
        mensajeDeDialogo.MostrarMensajeDialogo(tipoDeMensaje, mensaje);
    }
    //private void MostrarMensajeDialogoPregunta(Enumeraciones.TipoDeMensaje tipoDeMensaje, string mensaje)
    //{
    //    IMensajeDeDialogoPregunta mensajeDeDialogo = (IMensajeDeDialogoPregunta)this.Page.Master.FindControl("form1").FindControl("MensajeDeDialogoPregunta");
    //    System.Web.UI.Control mensajeR = this.Master.FindControl("form1").FindControl("MensajeDeDialogoPregunta") as System.Web.UI.Control;
    //    if (mensajeR != null)
    //    {
    //        mensajeR.Visible = true;
    //    }
    //    mensajeDeDialogo.MostrarMensajeDeDialogoPregunta(tipoDeMensaje, mensaje);

    //}
    #endregion


}

